<?php
/**
 * Modelo manejable de DatoCliente
 * 
 * @category   menejable
 * @package    modules_models
 * @author     Jose Miguel De Jesus <josejm07@hotmil.com>
 * @copyright  Todos los derechos reservados. Company24h. 2013.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 2.
 */
class datoclientemodel extends Model
{
	
	protected $_nameTable = "ec_vista_encuesta";

	public function __construct()
	{
		parent::Model();
	}
	
	/**
	 * 
	 * Esta es la funcion que carga los registros de la base de datos.
	 * 
	 */
	public function loadRegistro($rp = FALSE, $qtype = FALSE, $query = FALSE, $listado = FALSE, $sortname = FALSE, $sortorder = FALSE)
	{
		 
                 $this->db->where('id_estatus',0);
                 $this->db->where('id_activo_cancelado',0);
                 $this->db->where('date >=','2013-01-01');
                 
                 if($rp != false) $this->db->limit( $rp,$listado);
                 
                 if($query != FALSE) $this->db->like($qtype,$query);
                 
                 if($sortname != FALSE) $this->db->order_by($sortname,$sortorder);
                 
                 $sql =  $this->db->get($this->_nameTable);
                 
                 return $this->QueryResult($sql);
		
	}
	
	/**
	 * 
	 * Esta es la funcion que te permite buscar un registro.
	 * @param array $where
	 */
	public function loadRegistroByWhere($where)
	{
		$query = $this->db->get_where($this->_nameTable, $where);
		return $this->QueryResult($query);
	}
	
	/**
	 * 
	 * Esta es la funcion que te permite buscar un registro en especifico
	 * @param integer $id
	 */
    public function loadRegistroById($id)
    {
          $query = $this->db->get_where($this->_nameTable, array('Id_Referencia'  => $id));
          
          if ($query->num_rows() == 0)
           return false;
           
          return new ec_vista_encuesta($query->row()); 
    }
	
	/**
	 * 
	 * 
	 * @param objeto $resurt
	 */
	private function QueryResult($resurt)
	{
		
		   if($resurt->num_rows() == 0){
		       return FALSE;
		    }
			
			$registro_array = array();
			
			foreach ($resurt->result() as $record){
				$registro_array[] = new ec_vista_encuesta($record);
			}
			return $registro_array;
		
	}
	
	/**
	 * 
	 * Esta funcion te permite agregar un registro a una base de datos
	 * @param array $data
	 */
	public function addRegistro($data)
	{
		if($this->db->insert($this->_nameTable, $data)){
			return TRUE;
		}
			return FALSE;
	}
	
	/**
	 * 
	 * Esta funcion te permite actualizar un registro en una base de datos
	 * @param array $data
	 * @param integer $id
	 */
	public function upDateRegistro($data, $id)
	{
		if($this->db->update($this->_nameTable, $data, array("" => $id))){
			return TRUE;
		}
			return FALSE;
	}
	
	/**
	 * 
	 * Esta funcion te permite eliminar un registro de la base de datos..
	 * @param integer $id
	 */
	public function deleteRegistro($id)
	{
		if($this->db->delete($this->_nameTable,array("Id_Company" => $id))){
		}
	}	

        /**
        * @return int
        */
        public function getCount($where)
	{
		return count($this->loadRegistroByWhere($where));
	}
        
        /**
	 * 
	 * Esta es la funcion que carga los registros de la base de datos.
	 * 
	 */
	public function loadRegistroEncuesta($rp = FALSE, $qtype = FALSE, $query = FALSE, $listado = FALSE, $sortname = FALSE, $sortorder = FALSE)
	{
		 
                 $this->db->where('id_estatus',1);
                 $this->db->where('id_activo_cancelado',0);
                 $this->db->where('date >=','2013-01-01');
                 
                 if($rp != false) $this->db->limit( $rp,$listado);
                 
                 if($qtype != FALSE) $this->db->like($qtype,$query);
                 
                 if($sortname != FALSE) $this->db->order_by($sortname,$sortorder);
                 
                 $query =  $this->db->get($this->_nameTable);
                 
                 return $this->QueryResult($query);
		
	}
        
        /**
         * esta funcion da el nuemro ed registros de la consulta join_array
         */
        public function get_count_join_array($rp = FALSE, $qtype = FALSE, $query = FALSE, $listado = FALSE, $sortname = FALSE, $sortorder = FALSE)
        {
            
            $this->db->join('ec_encuesta',"ec_encuesta.idCompany = $this->_nameTable.Id_Referencia");
            
            $this->db->where("$this->_nameTable.id_activo_cancelado",'');
            $this->db->where("$this->_nameTable.id_estatus",1);
            $this->db->where('date >=','2013-01-01');
            
           
                 
             if($qtype != FALSE) $this->db->like($qtype,$query);
                 
             if($sortname != FALSE) $this->db->order_by($sortname,$sortorder);
            
            $sql = $this->db->get($this->_nameTable);
 
                         $registro_array = array();
			
			foreach ($sql->result() as $record){
				$registro_array[] = $record;
			}
			
            return count($registro_array);
            
        }

                
        /**
         * funcion que permite realizar un join con ec_encuesta
         */
        public function join_array($rp = FALSE, $qtype = FALSE, $query = FALSE, $listado = FALSE, $sortname = FALSE, $sortorder = FALSE)
        {     
            $this->db->join('ec_encuesta',"ec_encuesta.idCompany = $this->_nameTable.Id_Referencia");
            
            $this->db->where("$this->_nameTable.id_activo_cancelado",'');
            $this->db->where("$this->_nameTable.id_estatus",1);
            $this->db->where('date >=','2013-01-01');
            
            if($rp != false) $this->db->limit( $rp,$listado);
                 
             if($qtype != FALSE) $this->db->like($qtype,$query);
                 
             if($sortname != FALSE) $this->db->order_by($sortname,$sortorder);
            
            $sql = $this->db->get($this->_nameTable);
 
                         $registro_array = array();
			
			foreach ($sql->result() as $record){
				$registro_array[] = $record;
			}
			
                        return $registro_array;
        }
        
        
        
}


/**
 * Entidad  de Ec_Vista_Encuesta
 * 
 * @category   menejable
 * @package    modules_Entidad_models
 * @author     Jose Miguel De Jesus <josejm07@hotmil.com>
 * @copyright  Todos los derechos reservados. Company24h. 2012.
 * 
 * @see        Administrador
 * @since      Version 1.0, revision 2.
 */
class ec_vista_encuesta{
    
	
    /**
     * @var int
     * @access private 
     */
    private $_idReferencia = 0;
        
    /**
     * @var date-time
     * @access private 
     */
    private $_date ;
    
        /**
     * @var string
     * @access private 
     */
    private $_telefono1;
    
    /**
     * @var string
     * @access private 
     */
    private $_telefono2;
    
    /**
     * @var string
     * @access private 
     */
    private $_emailCia;
    
    /**
     * @var string
     * @access private 
     */
    private $_contacto;
    
    /**
     * @var string
     * @access private 
     */
    private $_referencia;
    
    /**
     * @var string
     * @access private 
     */
    private $_nombreServicio;
    
    /**
     * @var string
     * @access private 
     */
    private $_userNameUsuario;
    
    /**
     * @var string
     * @access private 
     */
    private $_nota;
    
    /**
     * @var string
     * @access private 
     */
    private $_entrgadoA;
    
    /**
     * @var int
     * @access private 
     */
    private $_idEstatus;
    
    /**
     * @var int
     * @access private 
     */
    private $_idActivoCancelado;

    /**
     * @param  object $objeto
     */
     function __construct($objeto) {
            
            $this->_idReferencia = $objeto->Id_Referencia;
            $this->_date = $objeto->date;
            $this->_telefono1 = $objeto->Telefono1;
            $this->_telefono2 = $objeto->Telefono2;
            $this->_emailCia = $objeto->Email_Cia;
            $this->_contacto = $objeto->Contacto;
            $this->_referencia = $objeto->Referencia;
            $this->_nombreServicio = $objeto->NombreServicio;
            $this->_userNameUsuario = $objeto->UsernameUsuario;
            $this->_nota = $objeto->nota;
            $this->_entrgadoA = $objeto->Entregado_A;
            $this->_idEstatus = $objeto->id_estatus;
            $this->_idActivoCancelado = $objeto->id_activo_cancelado;
            
        }

    
       /**
        * @return int
        */
        public function getIdReferencia() {
            return $this->_idReferencia;
        }

        /**
        * @return date
        */
        public function getDate() {
            return $this->_date;
        }

        /**
        * @return string
        */
        public function getTelefono1() {
            return $this->_telefono1;
        }

        /**
        * @return string
        */
        public function getTelefono2() {
            return $this->_telefono2;
        }

        /**
        * @return string
        */
        public function getEmailCia() {
            return $this->_emailCia;
        }

        /**
        * @return string
        */
        public function getContacto() {
            return $this->_contacto;
        }

        /**
        * @return string
        */
        public function getReferencia() {
            return $this->_referencia;
        }

        /**
        * @return string
        */
        public function getNombreServicio() {
            return $this->_nombreServicio;
        }

        /**
        * @return string
        */
        public function getNota() {
            return $this->_nota;
        }

        /**
        * @return string
        */
        public function getEntrgadoA() {
            return $this->_entrgadoA;
        }

        /**
        * @return int
        */
        public function getIdEstatus() {
            return $this->_idEstatus;
        }

        /**
        * @return int
        */
        public function getIdActivoCancelado() {
            return $this->_idActivoCancelado;
        }

        /**
         * @param int $idReferencia
         */
        public function setIdReferencia($idReferencia) {
            $this->_idReferencia = $idReferencia;
        }

        /**
         * @param date $date
         */
        public function setDate($date) {
            $this->_date = $date;
        }

        /**
         * @param string $telefono1
         */
        public function setTelefono1($telefono1) {
            $this->_telefono1 = $telefono1;
        }

        /**
         * @param string $telefono2
         */
        public function setTelefono2($telefono2) {
            $this->_telefono2 = $telefono2;
        }

        /**
         * @param string $emailCia
         */
        public function setEmailCia($emailCia) {
            $this->_emailCia = $emailCia;
        }

        /**
         * @param string $contacto
         */
        public function setContacto($contacto) {
            $this->contacto = $contacto;
        }

        /**
         * @param string $referencia
         */
        public function setReferencia($referencia) {
            $this->_referencia = $referencia;
        }

        /**
         * @param string $nombreServicio
         */
        public function setNombreServicio($nombreServicio) {
            $this->_nombreServicio = $nombreServicio;
        }

        /**
         * @param string $nota
         */
        public function setNota($nota) {
            $this->_nota = $nota;
        }

        /**
         * @param string $entrgadoA
         */
        public function setEntrgadoA($entrgadoA) {
            $this->_entrgadoA = $entrgadoA;
        }

        /**
         * @param string $idEstatus
         */
        public function setIdEstatus($idEstatus) {
            $this->_idEstatus = $idEstatus;
        }

        /**
         * @param string $idActivoCancelado
         */
        public function setIdActivoCancelado($idActivoCancelado) {
            $this->_idActivoCancelado = $idActivoCancelado;
        }

        /**
        * @return string
        */
        public function getUserNameUsuario() {
            return $this->_userNameUsuario;
        }

        /**
         * @param string $userNameUsuario
         */
        public function setUserNameUsuario($userNameUsuario) {
            $this->_userNameUsuario = $userNameUsuario;
        }



}


